package com.xxy.partnermatch.easyExcel;

import com.alibaba.excel.EasyExcel;

import java.util.List;

/**
 * ClassName: ImportExcel
 * Package: com.xxy.partnermatch.easyExcel
 * Description: 导入 Excel，读取数据
 *
 * @Author 十一
 * @Create 2024/11/18 10:13
 * @Version 1.0
 */
public class ImportExcel {

    public static void main(String[] args) {
        String fileName = "D:\\studyNote\\Java\\project\\伙伴匹配项目\\partnerMatch\\src\\main\\resources\\testExcel.xlsx";
        // 监听器读取
//        readByListener(fileName);

        // 同步读取
        synchronousRead(fileName);
    }

    /**
     * 监听器读取
     * 由于默认一行一行的读取Excel，所以需要创建Excel一行一行的回调监听器 TableListener
     *
     * @param fileName 文件名
     */
    public static void readByListener(String fileName) {
        // 这里需要指定用哪个class去读, 然后读取第一个sheet 文件流会自动关闭
        // 这里每次会读取100条数据, 然后返回过来, 直接调用使用数据就行
        EasyExcel.read(fileName, XingQiuTableUserInfo.class, new TableListener()).sheet().doRead();
    }

    /**
     * 同步读取
     * 同步的返回，不推荐使用，如果数据量大会把数据放到内存里面
     *
     * @param fileName 文件名
     */
    public static void synchronousRead(String fileName) {
        // 这里 需要指定读用哪个class去读，然后读取第一个sheet 同步读取会自动 finish
        List<XingQiuTableUserInfo> list = EasyExcel.read(fileName).head(XingQiuTableUserInfo.class).sheet().doReadSync();
        for (XingQiuTableUserInfo info : list) {
            System.out.println(info);
        }
    }

}
